Driving action determination for travel route exit event

ABSTRACT

Arrangements relate to determining a driving action for an autonomous vehicle. An exit event along a current road of a travel route of the autonomous vehicle can be identified. At least one forward vehicle between the autonomous vehicle and the exit event can be detected. A driving action to take relative to the at least one forward vehicle can be determined based on one or more inputs. Such inputs can include a determined availability or unavailability of passing the at least one forward vehicle and/or a determined sufficiency or insufficiency of distance between the at least one forward vehicle and the exit event. The autonomous vehicle can be caused to implement the determined driving action. The driving action can be, for example, remaining behind the at least one forward vehicle, passing the at least one forward vehicle or prompting an occupant of the autonomous vehicle to select a driving action.

FIELD

The subject matter described herein relates in general to vehicleshaving an autonomous operational mode and, more particularly, to themaneuvering of such vehicles when approaching an exit event.

BACKGROUND

Some motor vehicles include driving assistance systems that can assist adriver in the operation of such vehicles. Driving assistance systemstypically include sensors configured to detect information about thesurrounding environment, such as the presence of other vehicles. Suchdriving assistance systems include computing systems that are configuredto process the detected information to inform a driver of options fornavigating the vehicle in the surrounding environment. For instance,some motor vehicles are configured to send an indication to a driverwhen there is an opportunity to pass another vehicle.

SUMMARY

In one respect, the present disclosure is directed to a method ofdetermining a driving action for an autonomous vehicle. The methodincludes identifying an exit event along a current road of a travelroute of the autonomous vehicle. The method also includes detecting atleast one forward vehicle between the autonomous vehicle and the exitevent. Further, the method includes determining, using a processor, adriving action to take relative to the at least one forward vehicle.Such determining is based on at least one of a determined availabilityor unavailability of passing the at least one forward vehicle and adetermined sufficiency or insufficiency of distance between the at leastone forward vehicle and the exit event. In addition, the method includescausing the autonomous vehicle to implement the determined drivingaction.

In another respect, the present disclosure is directed to a system foran autonomous vehicle. The system includes a sensor system configured todetect one or more forward vehicles between an autonomous vehicle and anexit event along a current road of a travel route of the autonomousvehicle. The system also includes a processor operatively connected tothe sensor system. The processor is programmed to initiate executableoperations. The executable operations include determining a drivingaction to take relative to the at least one forward vehicle. Suchdetermining is based on at least one of a determined availability orunavailability of passing the at least one forward vehicle and adetermined sufficiency or insufficiency of distance between the at leastone forward vehicle and the exit event. The executable operationsfurther include causing the autonomous vehicle to implement thedetermined driving action.

In still another respect, the present disclosure is directed to acomputer program product for determining a driving action for anautonomous vehicle approaching an exit event. The computer programproduct includes a computer readable storage medium having program codeembodied therewith. The program code is executable by a processor toperform a method. The method includes identifying an exit event along acurrent road of a travel route of the autonomous vehicle. The methodalso includes detecting at least one forward vehicle between theautonomous vehicle and the exit event. The method further includesdetermining a driving action to take relative to the at least oneforward vehicle. Such determining is based on at least one of adetermined availability or unavailability of passing the at least oneforward vehicle and a determined sufficiency or insufficiency ofdistance between the at least one forward vehicle and the exit event.The method includes causing the autonomous vehicle to implement thedetermined driving action.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an example of a system for an autonomous vehicle fordetermining a driving action for an exit event.

FIG. 2 is an example of a portion of a travel route for an autonomousvehicle, the travel route including an exit event.

FIG. 3 is an example of a method of determining a driving action for anexit event.

DETAILED DESCRIPTION

This detailed description relates to determining a suitable drivingaction for an autonomous vehicle near an exit event. More particularly,such a determination can be made when one or more other vehicles aredetected in front of and in the same lane as the autonomous vehicle.Examples of suitable driving actions can include passing the detectedvehicle(s) or remaining behind the detected vehicle(s). The presentdetailed description relates to systems, methods and computer programproducts that incorporate such features. In at least some instances,such systems, methods and computer program products can assist inminimizing driver inputs to and/or improving performance of theautonomous vehicle.

Detailed embodiments are disclosed herein; however, it is to beunderstood that the disclosed embodiments are intended only asexemplary. Therefore, specific structural and functional detailsdisclosed herein are not to be interpreted as limiting, but merely as abasis for the claims and as a representative basis for teaching oneskilled in the art to variously employ the aspects herein in virtuallyany appropriately detailed structure. Further, the terms and phrasesused herein are not intended to be limiting but rather to provide anunderstandable description of possible implementations. Variousembodiments are shown in FIGS. 1-3, but the embodiments are not limitedto the illustrated structure or application.

It will be appreciated that for simplicity and clarity of illustration,where appropriate, reference numerals have been repeated among thedifferent figures to indicate corresponding or analogous elements. Inaddition, numerous specific details are set forth in order to provide athorough understanding of the embodiments described herein. However, itwill be understood by those of ordinary skill in the art that theembodiments described herein can be practiced without these specificdetails.

Referring to FIG. 1, an example a vehicle 100 is shown. As used herein,“vehicle” means any form of motorized transport. In one or moreimplementations, the vehicle 100 can be an automobile. Whilearrangements will be described herein with respect to automobiles, itwill be understood that embodiments are not limited to automobiles. Insome implementations, the vehicle 100 may be a watercraft, an aircraftor any other form of motorized transport.

According to arrangements herein, the vehicle 100 can be an autonomousvehicle. As used herein, “autonomous vehicle” means a vehicle thatconfigured to operate in an autonomous mode using one or more computingsystems to navigate and/or maneuver a vehicle along a travel route withminimal or no input from a human driver. In some instances, the vehicle100 can be configured to be selectively switched between an autonomousmode and a manual mode. Such switching can be implemented in anysuitable manner, now known or later developed. “Manual mode” means thata majority of the navigation and/or maneuvering of a vehicle along atravel route is performed by a human driver.

The vehicle 100 can include various elements which may be a part of anautonomous driving system 105. Some of the possible elements of theautonomous driving system 105 are shown in FIG. 1 and will now bedescribed. It will be understood that it is not necessary for the system105 to have all of the elements shown in FIG. 1 or described herein. Thesystem 105 can have any combination of the various elements shown inFIG. 1. Further, the system 105 can have additional elements to thoseshown in FIG. 1. In some arrangements, the system 105 may not includeone or more of the elements shown in FIG. 1. Further, while the variouselements are shown as being located within the vehicle 100 in FIG. 1, itwill be understood that one or more of these elements can be locatedexternal to the vehicle 100. Further, the elements shown may bephysically separated by large distances.

The vehicle 100 can include one or more processors 110. “Processor”means any component or group of components that are configured toexecute any of the processes described herein or any form ofinstructions to carry out such processes or cause such processes to beperformed. The processor 110 may be implemented with one or moregeneral-purpose and/or one or more special-purpose processors. Examplesof suitable processors include microprocessors, microcontrollers, DSPprocessors, and other circuitry that can execute software. Furtherexamples of suitable processors include, but are not limited to, acentral processing unit (CPU), an array processor, a vector processor, adigital signal processor (DSP), a field-programmable gate array (FPGA),a programmable logic array (PLA), an application specific integratedcircuit (ASIC), programmable logic circuitry, and a controller. Theprocessor 110 can include at least one hardware circuit (e.g., anintegrated circuit) configured to carry out instructions contained inprogram code. In arrangements in which there is a plurality ofprocessors 110, such processors can work independently from each otheror one or more processors can work in combination with each other. Inone or more arrangements, the processor 110 can be a main processor ofthe vehicle 100. For instance, the processor 110 can be an enginecontrol unit.

The vehicle 100 can include one or more data stores 115 for storing oneor more types of data. The data store 115 can include volatile and/ornon-volatile memory. Examples of suitable data stores 115 include RAM(Random Access Memory), flash memory, ROM (Read Only Memory), PROM(Programmable Read-Only Memory), EPROM (Erasable Programmable Read-OnlyMemory), EEPROM (Electrically Erasable Programmable Read-Only Memory),registers, magnetic disks, optical disks, hard drives, or any othersuitable storage medium, or any combination thereof. The data store 115can be operatively connected to the processor 110 for use thereby. Theterm “operatively connected,” as used throughout this description, caninclude direct or indirect connections, including connections withoutdirect physical contact.

The vehicle 100 can include an autonomous driving module 120. Theautonomous driving module 120 can be implemented as computer readableprogram code that, when executed by a processor, implement the variousprocesses described herein. The autonomous driving module 120 and/or thedata store 115 can be components of the processor 110, or the autonomousdriving module 120 and/or the data store 115 can be executed on and/ordistributed among other processing systems to which the processor 110 isoperatively connected.

The autonomous driving module 120 can include instructions (e.g.,program logic) executable by the processor 110. Such instructions caninclude instructions to execute various vehicle functions and/or totransmit data to, receive data from, interact with, and/or control thevehicle 100 or one or more systems thereof (e.g. one or more of vehiclesystems 145). Alternatively or in addition, the data store 115 maycontain instructions.

The vehicle 100 can include a sensor system 125. The sensor system 125can include one or more sensors. “Sensor” means any device, componentand/or system that can detect, determine, assess, measure, quantifyand/or sense something. In arrangements in which the sensor system 125includes a plurality of sensors, the sensors can work independently fromeach other or one or more of the sensors can work in combination witheach other. The sensor system 125 and/or the one or more sensors can beoperatively connected to the processor 110, the data store 115, theautonomous driving module 120 and/or other element of the vehicle 100and/or the autonomous driving system 105.

The sensor system 125 can include any suitable type of sensor. Forexample, the sensor system 125 can include one or more sensorsconfigured to detect, determine, assess, measure, quantify and/or senseinformation about the vehicle 100. Alternatively or in addition, thesensor system 125 can include one or more sensors configured to detect,determine, assess, measure, quantify and/or sense information about anenvironment in which the vehicle 100 is located, including informationabout objects in the environment. Such objects may be stationary objector moving objects. Alternatively or in addition to one or more of theabove examples, the sensor system 125 can include one or more sensorsconfigured to detect, determine, assess, measure, quantify and/or sensethe location of the vehicle 100. Various examples of these and othertypes of sensors will be described herein. It will be understood thatthe embodiments are not limited to the particular sensors described.

The sensor system 125 can include one or more sensors configured todetect, determine, assess, measure, quantify and/or sense position andorientation changes of the vehicle 100, such as, for example, based oninertial acceleration. In one or more arrangements, the sensor system125 can include accelerometers, gyroscopes and/or other suitablesensors. The sensor system 125 can include sensors that can monitor oneor more internal systems of the vehicle 100 (e.g., an O₂ monitor, a fuelgauge, an engine oil temperature, coolant temperature, etc.).

The sensor system 125 can include one or more sensors configured todetect, determine, assess, measure, quantify and/or sense objects in theenvironment in which the vehicle 100 is located using radio signals(e.g. RADAR based sensors). In some arrangements, the one or moresensors can be configured to sense the speed and/or heading of suchobjects.

The sensor system 125 can include one or more sensors can be configuredto detect, determine, assess, measure, quantify and/or sense objects inthe environment in which the vehicle 100 is located using lasers. Forinstance, the sensors can be or included as part of a laser rangefinderor a LIDAR. Such devices can include a laser source and/or laser scannerconfigured to emit a laser and a detector configured to detectreflections of the laser. The laser rangefinder or LIDAR may beconfigured to operate in a coherent or an incoherent detection mode.

The sensor system 125 can include a camera. “Camera” is defined as anydevice, component, and/or system that can capture an image. The cameracan include a lens and an image capture element. The image captureelement can be any suitable type of image capturing device or system,including, for example, an area array sensor, a Charge Coupled Device(CCD) sensor, a Complementary Metal Oxide Semiconductor (CMOS) sensor, alinear array sensor, a CCD (monochrome). The image capturing element maycapture images in any suitable wavelength on the electromagneticspectrum. The image capturing element may capture color images and/orgrayscale images.

Alternatively or in addition to the above, the sensor system 125 caninclude other types of sensors. The processor 110 can be operable tocontrol movements of one or more of the sensors of the sensor system125. It should be noted that any of the sensors described herein can beprovided in any suitable location with respect to the vehicle 100. Forinstance, one or more sensors can be located within the vehicle 100and/or one or more sensors can be located on or exposed to the exteriorof the vehicle 100.

The vehicle 100 can include an input system 130 for receiving input froma vehicle occupant (e.g. a driver or a passenger). Any suitable inputsystem 130 can be used, including, for example, a keypad, display, touchscreen, multi-touch screen, button, joystick, mouse, trackball,microphone and/or combinations thereof.

The vehicle 100 can include an output system 135 for presentinginformation to the driver or passenger. The output system 135 caninclude a display, as described above. Alternatively or in addition, theoutput system 135 may include a microphone, earphone and/or speaker.Some components of the vehicle 100 may serve as both a component of theinput system 130 and a component of the output system 135.

The vehicle 100 can include one or more vehicle systems 145. Variousexamples of the one or more vehicle systems 145 are shown in FIG. 1.However, the vehicle 100 can include more, fewer or different systems.It should be appreciated that although particular vehicle systems areseparately defined, each or any of the systems or portions thereof maybe otherwise combined or segregated via hardware and/or software withinthe vehicle 100.

The vehicle 100 can include a propulsion system 150. The propulsionsystem 150 can include one or more mechanisms, devices, elements,components, systems, and/or combinations thereof, now known or laterdeveloped, configured to provide powered motion for the vehicle 100. Thepropulsion system 150 can include an engine and an energy source.

The engine can be any suitable of engine or motor, now known or laterdeveloped. For instance, the engine can be an internal combustionengine, an electric motor, a steam engine, and/or a Stirling engine,just to name a few possibilities. In some embodiments, the propulsionsystem could include a plurality of engine types. For instance, agas-electric hybrid vehicle can include a gasoline engine and anelectric motor.

The energy source can be any suitable source of energy that can be usedto at least partially power the engine. The engine can be configured toconvert the energy source into mechanical energy. Examples of energysources include gasoline, diesel, propane, other compressed gas-basedfuels, ethanol, solar panels, batteries, and/or other sources ofelectrical power. Alternatively or in addition, the energy source caninclude fuel tanks, batteries, capacitors, and/or flywheels. In someembodiments, the energy source can be used to provide energy for othersystems of the vehicle 100.

The vehicle 100 can include wheels or tires. Any suitable type of wheelsor tires can be used. In one or more arrangements, the wheels or tiresof the vehicle 100 can be configured to rotate differentially withrespect to other wheels or tires. The wheels or tires can be made of anysuitable material.

The vehicle 100 can include a braking system 155. The braking system 155can include one or more mechanisms, devices, elements, components,systems, and/or combinations thereof, now known or later developed,configured to decelerate the vehicle 100. As an example, the brakingsystem 155 can use friction to slow the wheels/tires. The braking system155 can convert the kinetic energy of the wheels/tires to electriccurrent.

Further, the vehicle 100 can include a steering system 160. The steeringsystem 160 can include one or more mechanisms, devices, elements,components, systems, and/or combinations thereof, now known or laterdeveloped, configured to adjust the heading of the vehicle 100.

The vehicle 100 can include a throttle system 165. The throttle system165 can include one or more mechanisms, devices, elements, components,systems, and/or combinations thereof, now known or later developed,configured to control the operating speed of an engine/motor of thevehicle 100 and, in turn, the speed of the vehicle 100.

The vehicle 100 can include a transmission system 170. The transmissionsystem 170 can include one or more mechanisms, devices, elements,components, systems, and/or combinations thereof, now known or laterdeveloped, configured to transmit mechanical power from the engine/motorof the vehicle 100 to the wheels/tires. For instance, the transmissionsystem 170 can include a gearbox, clutch, differential, drive shafts,and/or other elements. In arrangements where the transmission system 170includes drive shafts, the drive shafts can include one or more axlesthat are configured to be coupled to the wheels/tires.

The vehicle 100 can include a signaling system 175. The signaling system175 can include one or more mechanisms, devices, elements, components,systems, and/or combinations thereof, now known or later developed,configured to provide illumination for the driver of the vehicle 100and/or to provide information with respect to one or more aspects of thevehicle 100. For instance, the signaling system 175 can provideinformation regarding the vehicle's presence, position, size, directionof travel, and/or the driver's intentions regarding direction and speedof travel. For instance, the signaling system 175 can includeheadlights, taillights, brake lights, hazard lights and turn signallights.

The vehicle 100 can include a navigation system 180. The navigationsystem 180 can include one or more mechanisms, devices, elements,components, systems, applications and/or combinations thereof, now knownor later developed, configured to determine the geographic location ofthe vehicle 100 and/or to determine a travel route for the vehicle 100.

The navigation system 180 can include one or more mapping applicationsto determine a travel route for the vehicle 100. For instance, a driveror passenger may input an origin and a destination. The mappingapplication can determine one or more suitable travel routes between theorigin and the destination. A travel route may be selected based on oneor more parameters (e.g. shortest travel distance, shortest amount oftravel time, etc.). In some arrangements, the navigation system 180 canbe configured to update the travel route dynamically while the vehicle100 is in operation.

The navigation system 180 can include a global positioning system, alocal positioning system or a geolocation system. The navigation system180 can be implemented with any one of a number of satellite positioningsystems, such as the United States Global Positioning System (GPS), theRussian Glonass system, the European Galileo system, the Chinese Beidousystem, or any system that uses satellites from a combination ofsatellite systems, or any satellite system developed in the future,including the planned Chinese COMPASS system and the Indian RegionalNavigational Satellite System. Further, the navigation system 180 canuse Transmission Control Protocol (TCP) and/or a Geographic informationsystem (GIS) and location services.

The navigation system 180 may include a transceiver configured toestimate a position of the vehicle 100 with respect to the Earth. Forexample, navigation system 180 can include a GPS transceiver todetermine the vehicle's latitude, longitude and/or altitude. Thenavigation system 180 can use other systems (e.g. laser-basedlocalization systems, inertial-aided GPS, and/or camera-basedlocalization) to determine the location of the vehicle 100.

Alternatively or in addition, the navigation system 180 can be based onaccess point geolocation services, such as using the W3C GeolocationApplication Programming Interface (API). With such a system, thelocation of the vehicle 100 can be determined through the consulting oflocation information servers, including, for example, Internet protocol(IP) address, Wi-Fi and Bluetooth Media Access Control (MAC) address,radio-frequency identification (RFID), Wi-Fi connection location, ordevice GPS and Global System for Mobile Communications (GSM)/codedivision multiple access (CDMA) cell IDs. Thus, it will be understoodthat the specific manner in which the geographic position of the vehicle100 is determined will depend on the manner of operation of theparticular location tracking system used.

The processor 110 and/or the autonomous driving module 120 can beoperatively connected to communicate with the various vehicle systems145 and/or individual components thereof. For example, returning to FIG.1, the processor 110 and/or the autonomous driving module 120 can be incommunication to send and/or receive information from the variousvehicle systems 145 to control the movement, speed, maneuvering,heading, direction, etc. of vehicle 100. The processor 110 and/or theautonomous driving module 120 may control some or all of these vehiclesystems 145 and, thus, may be partially or fully autonomous.

The processor 110 and/or the autonomous driving module 120 may beoperable to control the navigation and/or maneuvering of the vehicle 100by controlling one or more of the vehicle systems 145 and/or componentsthereof. For instance, when operating in an autonomous mode, theprocessor 110 and/or the autonomous driving module 120 can control thedirection and/or speed of the vehicle 100. The processor 110 and/or theautonomous driving module 120 can cause the vehicle 100 to accelerate(e.g., by increasing the supply of fuel provided to the engine),decelerate (e.g., by decreasing the supply of fuel to the engine and/orby applying brakes) and/or change direction (e.g., by turning the fronttwo wheels). As used herein, “cause” or “causing” means to make, force,compel, direct, command, instruct, and/or enable an event or action tooccur or at least be in a state where such event or action may occur,either in a direct or indirect manner.

The vehicle 100 can include one or more actuators 140. The actuators 140can be any element or combination of elements operable to modify, adjustand/or alter one or more of the vehicle systems 145 or componentsthereof to responsive to receiving signals or other inputs from theprocessor 110 and/or the autonomous driving module 120. Any suitableactuator can be used. For instance, the one or more actuators 140 caninclude motors, pneumatic actuators, hydraulic pistons, relays,solenoids, and/or piezoelectric actuators, just to name a fewpossibilities.

One example of an environment 200 in which the vehicle 100 can operateis shown in FIG. 2. The vehicle 100 can be traveling on a road 205.“Road” means a thoroughfare, route, path or way between two places andupon which a vehicle can travel. The road 205 may be paved or otherwiseimproved to facilitate travel by a vehicle thereon. In some instances,the road 205 may be unpaved or undeveloped. The road 205 may be a publicroad or a private road. The road 205 may be designated for one waytravel (e.g. a one way street), or the road 205 can be designated fortwo way travel. The road 205 can include or be a part of one or morebridges, tunnels, supporting structures, junctions, crossings,interchanges, and toll roads. The road 205 can include a shoulder of aroad. As used herein, “current road” means a road that a vehicle istraveling on at the present time.

The road 205 can include one or more travel lanes 210. A “travel lane”is a portion of a road that is designated for use by a single line ofvehicles and/or a portion of a road that is being used by a single lineof vehicles. In some instances, the one or more travel lanes 210 can bedesignated by markings on the road 205 or in any other suitable manner.In some instances, the one or more travel lanes 210 may not be marked.

FIG. 2 shows an example in which the road 205 includes two travel lanes210. However, it will be understood that arrangements described hereinare not limited to roads having two travel lanes. Indeed, arrangementsdescribed herein can be used in connection with roads having any numberof travel lanes. Further, it should be noted that the vehicles inadjacent travel lanes may travel in the same direction, or the vehiclesin adjacent travel lanes may travel in opposite directions.

The road 205 can include an exit event 215. As used herein, “exit event”means a portion of a determined travel route in which the vehicle leavesor separates from a current road with a change in direction. Examples ofexit events include intersections, junctions, T-junctions, Y junctions,four ways turns, off ramps, onramps, roundabouts, drive ways, alleys,and/or forks. In some instances, the exit event may be controlled by atraffic control device (e.g. a traffic light). In some instances, theexit event may not have an associated traffic control device. The exitevent can be at substantially 90 degrees relative to the current road.As used herein, the term “substantially” includes exactly the term itmodifies and slight variations therefrom. Thus, the term “substantially90 degrees” means exactly 90 degrees and slight variations therefrom. Asa further example, the exit event can be angled at an acute angle withrespect to the current road. Still further, the exit event can be angledat an obtuse angle with respect to the current road.

The exit event may be located on a driver side of the vehicle 100 or apassenger side of the vehicle 100. In the example shown in FIG. 2, theexit event 215 is a substantially 90 degree right hand turn. However, itwill be understood that arrangements are not limited to such an exitevent. It should be noted that the vehicle 100 may pass one or morethings (e.g. intersections, junctions, etc.) along the travel route thatcould be potential exit events. However, if the vehicle 100 does notfollow the exit event as part of the determined travel route (e.g. thevehicle 100 will not turn at a given intersection, junction, etc.), thensuch things are not considered to be exit events for that particulartravel route.

As noted above, the vehicle 100 can be configured to detect objectssurrounding the vehicle 100 in the environment 200. The surroundingobject can be located in any direction with respect to the vehicle 100.The surrounding objects can include one or more other vehicles. Theother vehicles may be autonomous vehicles or non-autonomous vehicles orany combination of autonomous and non-autonomous vehicles. For instance,the surrounding objects can include one or more forward vehicles 250,one or more rearward vehicles, one or more driver side vehicles, and/orone or more passenger side vehicles (not shown). “Forward vehicle” meansa vehicle that is located in front of and in the same lane orsubstantially the same lane as the present vehicle (e.g. vehicle 100)and traveling in the same direction.

One or more of such other vehicles may be traveling in the samedirection as the vehicle 100. Further, one or more of such othervehicles may be traveling in a different direction as the vehicle 100(e.g. in one or more transverse directions or in the opposite directionto the vehicle 100). In some instances, one or more of the othervehicles may or may not be moving. For instance, there may be one ormore parked, stopped, and/or disabled vehicles.

The surrounding objects can include non-vehicular objects. For instance,the non-vehicular objects can include people, animals, signs, and/orother objects. The non-vehicular objects can be stationary, or they canbe moving.

In some arrangements, the surrounding objects can include all objectsdetected by the sensor system 125 within the range of the sensors. Insome arrangements, the surrounding objects can be a subset of theobjects detected by the sensor system 125, such as those objects thatare detected to be within a predetermined distance from the vehicle 100.For instance, objects that are located beyond the predetermined distancecan be ignored or otherwise filtered and thus effectively ignored.

Now that the various potential components of the vehicle 100 and theenvironment 200 in which the vehicle 100 may operate have beendescribed, one manner of determining driving actions for the vehicle 100at exit events, such as the exit event 215 shown in FIG. 2 will bepresented. Referring now to FIG. 3, an example of a method 300 ofdetermining driving actions at exit events is shown. Various possiblesteps of method 300 will now be described. The method 300 illustrated inFIG. 3 may be applicable to the embodiments described above in relationto FIGS. 1 and 2, but it is understood that the method 300 can becarried out with other suitable systems and arrangements. Moreover, themethod 300 may include other steps that are not shown here, and in fact,the method 300 is not limited to including every step shown in FIG. 3.The steps that are illustrated here as part of the method 300 are notlimited to this particular chronological order. Indeed, some of thesteps may be performed in a different order than what is shown and/or atleast some of the steps shown can occur simultaneously.

Various possible steps of method 300 will now be described. At block305, a travel route for the vehicle 100 can be determined. The “travelroute” is a way that a vehicle can take to reach a predetermineddestination. The travel route can be fixed, that is, once a route hasbeen determined or selected, the travel route does not change.Alternatively, at least a portion of the travel route can be altered oradjusted in real time or at any suitable interval based on currentinformation. As used herein, the term “real time” means a level ofprocessing responsiveness that a driver or passenger or system senses assufficiently immediate for a particular process or determination to bemade, or that enables the processor to keep up with some externalprocess. For instance, a travel route can be altered or adjusted ifinformation received indicates that a road or a portion of the road onthe determined travel route is closed due to an accident, flooding orother reason.

The travel route can be determined in any suitable manner. In somearrangements, the travel route can be input, determined, created and/orselected by a driver or passenger (e.g. a person). In some arrangements,the travel route can be created, determined and/or selected by theautonomous driving system 105, such as by the processor 110, thenavigation system 180 and/or the autonomous driving module 120. Therecan be one or more exit events along the determined travel route.

At block 310, objects surrounding the vehicle 100 can be detected. Suchdetection can be performed by one or more sensors of the sensor system125. In some arrangements, such detecting can be performed continuouslywhile the vehicle 100 is traveling on the travel route or for at least aportion thereof. In some arrangements, such detecting can at anysuitable interval while the vehicle 100 is traveling on the travel routeor for at least a portion thereof.

At decision block 315, an exit event along the determined travel routeor a current road of the determined travel route can be identified. Suchidentification can be performed in any suitable manner. Theidentification can be made at any time and/or at any spatial point alongthe travel route or current road. For instance, the identification canbe made at the time the travel route is initially determined. As anotherexample, the identification can be made when it is determined that thevehicle 100 is located on a road with an exit event or when the vehicle100 is within a predetermined distance from the exit event.

If no exit event is identified along the determined travel route or thecurrent road of the determined travel route, the method 300 can end, orit can return to block 305. However, if an exit event is identified,then the method 300 can continue to decision block 320.

At decision block 320, it can be determined whether there are one ormore forward vehicles between the vehicle 100 and the exit event. Such adetermination can be made using one or more of the sensors of the sensorsystem 125 and/or the processor 110. If no forward vehicles aredetected, then the method 300 can end, or it can return to block 305. Ifone or more forward vehicles are detected, then the method 300 cancontinue to decision block 325.

At decision block 325, it can be determined whether passing the one ormore forward vehicles is available or unavailable to the vehicle 100.The determination of availability or unavailability includes assessingwhether there is an opportunity for the vehicle 100 to pass the one ormore forward vehicles based on the presence of one or more passing lanes(e.g. one or more travel lanes that can be used to pass the one or moreforward vehicles). “Availability” means that the vehicle can pass theone or more forward vehicles based at least on the presence of one ormore passing lanes. Conversely, “unavailability” means that the vehiclecannot pass the one or more forward vehicles based at least on theabsence of a passing lane.

It should be noted that the determination of availability orunavailability can also be based on one or more other detectedconditions or factors. Examples of such other detected conditions orfactors include, for example, the presence of surrounding vehicles (e.g.vehicles in the one or more passing lanes, in the current travel lane ofthe vehicle 100 and/or in other travel lanes), the speed of thesurrounding vehicles, the travel direction of the surrounding vehicles,surrounding objects, weather conditions, and/or road conditions. Forinstance, if the current road has only one travel lane, then it may bedetermined that it is not possible to pass the one or more forwardvehicles before the exit event because there is no travel lane availablefor passing. As a result, it would be determined that passing the one ormore forward vehicles is unavailable. Alternatively, if the current roadhas more than one travel lane, then it may be determined that it is notpossible to pass the one or more forward vehicles before the exit eventif other vehicles are detected in the other travel lane. Again, it maybe determined that passing the one or more forward vehicles isunavailable in such circumstances. However, if the current road has morethan one travel lane and, for example, no other vehicles are detected inan adjacent travel lane to the current travel lane of the vehicle 100,then it may be determined that passing the one or more forward vehiclesis available.

If it is determined that passing the one or more forward vehicles isunavailable, the vehicle 100 can be caused to remain behind the one ormore forward vehicles at block 330. “Remain behind” means that thevehicle 100 continues to follow the one or more forward vehicles in thesame travel lane. “Remain behind” includes stopping or following the oneor more forward vehicles. If it is determined that passing the one ormore forward vehicles is available, the method 300 can continue todecision block 335.

The distance between the one or more forward vehicles and the exit eventcan be determined in any suitable manner (e.g. using the sensor system125 and/or any other vehicle system 145, device and/or component). Thespeed of the one or more forward vehicles can also be determined. Atdecision block 335, it can be determined whether the one or more forwardvehicles are sufficiently or insufficiently distant from the exit event.“Sufficiently distant” means that, based at least on the distancebetween the exit event and the one or more forward vehicles and/or thespeed of the one or more forward vehicles, the vehicle 100 can pass theone or more forward vehicles with adequate time and/or distance for thevehicle 100 to safely take the exit event. Conversely, “insufficientlydistant” means that the vehicle 100 cannot pass the one or more forwardvehicle with adequate time and/or distance for the vehicle 100 to safelytake the exit event. “Pass the one or more forward vehicles” means thevehicle 100 leaves its present travel lane, passes the one or moreforward vehicles in another travel lane, and returns to the presenttravel lane in front of the one or more forward vehicles. While in atleast some instances the determination of availability or unavailabilityof passing the one or more forward vehicles and the determination ofsufficiency or insufficiency of distance may take into account at leastsome of the same factors, the determinations are separate and theultimate determination is different.

If it is determined that the one or more forward vehicles aresufficiently distant from the exit event, it can be determined that thesuitable driving action is passing the one or more forward vehicles. Thevehicle 100 can be caused to pass the one or more forward vehicles atblock 340. In one or more arrangements, the processor 110 and/or theautonomous driving module 120 can cause the vehicle 100 to pass the oneor more forward vehicles. The processor 110 and/or the autonomousdriving module 120 can be operatively connected to one or more of thevehicle systems to implement the determined driving action. In one ormore arrangements, the processor 110 and/or the autonomous drivingmodule 120 can be operable to control the one or more actuators 140,which can control one or more of the vehicle systems 145 or portionsthereof to implement the determined driving action.

If it is determined that the one or more forward vehicles are notsufficiently distant from the exit event, then method 300 can continueto block 345. At block 345, a driver or other passenger of the vehicle100 can be prompted to select a driving action. The driver or otherpassenger can be prompted in any suitable manner. For instance, theprompt can be displayed on a display in the vehicle 100. Alternativelyor in addition, the prompt can be audibly output to the driver or otherpassenger over one or more auditory channels. Other forms of promptingcan be used as an alternative or in addition to these forms ofprompting.

In one or more arrangements, the prompting can include a set ofpredefined driving actions for the driver or passenger to select from.The term “set of predefined driving actions” includes one or morepredefined driving actions. For instance, the driver or passenger can beprompted to select passing the one or more forward vehicles before theexit event or remaining behind the one or more forward vehicles beforethe exit event. In some arrangements, the prompt may not includepredefined driving actions. Instead, the driver or passenger can input adesired driving action.

The driver or passenger can input a selected or desired driving actionin any suitable manner. For instance, the driver or passenger can inputthe selection using one or more components of the input system 130. Asan example, the driver or passenger can input a selection through atouch screen, button, switch or other in-vehicle user interface element.In some arrangements, the driver or passenger can input a selectionthrough engagement with one or more vehicle components (e.g. turnsignal, brake pedal, gas pedal, etc.). A “user interface element” isdefined as a component or a group of components that enables a user tointeract with a machine. In one or more arrangements, the driver orpassenger can input a selection by speaking the selected or desireddriving action.

If a driving action selection is not received, the driving action can bedetermined to be remaining behind the one or more forward vehicles oranother system default driving action. The vehicle 100 can be caused toremain behind the one or more forward vehicles at block 330. In somearrangements, a predetermined amount of time can be given for the driveror passenger to select a driving action. The predetermined amount oftime can be any suitable amount of time. The predetermined amount oftime can vary depending on the circumstances in the environment. If adriving action selection is not received within the predetermined amountof time, the driving action can be determined to be remaining behind theone or more forward vehicles or another system default driving action

If a driving action selection is received (e.g. within the predeterminedamount of time or otherwise), the method 300 can continue to block 355.At block 355, the vehicle 100 can be caused to implement the selecteddriving action. In one or more arrangements, the processor 110 and/orthe autonomous driving module 120 can cause the vehicle 100 to implementthe selected driving action. The processor 110 and/or the autonomousdriving module 120 can be operatively connected to one or more of thevehicle systems 145 to implement the selected driving action. In one ormore arrangements, the processor 110 and/or the autonomous drivingmodule 120 can be operable to control the one or more actuators 140,which can control one or more of the vehicle systems 145 or portionsthereof to implement the selected driving action. The method 300 canend, or it can return to block 305.

It will be appreciated that arrangements described herein can providenumerous benefits, including one or more of the benefits mentionedherein. For example, arrangements described herein can reduce driver orpassenger input. As another example, arrangements described herein canimprove the performance of an autonomous vehicle. As a still furtherexample, arrangements described herein can improve vehicle safety.

The flowcharts and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments. In this regard, each block in the flowcharts or blockdiagrams may represent a module, segment, or portion of code, whichcomprises one or more executable instructions for implementing thespecified logical function(s). It should also be noted that, in somealternative implementations, the functions noted in the block may occurout of the order noted in the figures. For example, two blocks shown insuccession may, in fact, be executed substantially concurrently, or theblocks may sometimes be executed in the reverse order, depending uponthe functionality involved.

The systems, components and/or processes described above can be realizedin hardware or a combination of hardware and software and can berealized in a centralized fashion in one processing system or in adistributed fashion where different elements are spread across severalinterconnected processing systems. Any kind of processing system orother apparatus adapted for carrying out the methods described herein issuited. A typical combination of hardware and software can be aprocessing system with computer-usable program code that, when beingloaded and executed, controls the processing system such that it carriesout the methods described herein. The systems, components and/orprocesses also can be embedded in a computer-readable storage, such as acomputer program product or other data programs storage device, readableby a machine, tangibly embodying a program of instructions executable bythe machine to perform methods and processes described herein. Theseelements also can be embedded in an application product which comprisesall the features enabling the implementation of the methods describedherein and, which when loaded in a processing system, is able to carryout these methods.

Furthermore, arrangements described herein may take the form of acomputer program product embodied in one or more computer-readable mediahaving computer-readable program code embodied, e.g., stored, thereon.Any combination of one or more computer-readable media may be utilized.The computer-readable medium may be a computer-readable signal medium ora computer-readable storage medium. The phrase “computer-readablestorage medium” means a non-transitory storage medium. Acomputer-readable storage medium may be, for example, but not limitedto, an electronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system, apparatus, or device, or any suitable combinationof the foregoing. More specific examples (a non-exhaustive list) of thecomputer-readable storage medium would include the following: anelectrical connection having one or more wires, a portable computerdiskette, a hard disk drive (HDD), a solid state drive (SSD), a randomaccess memory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), an optical fiber, a portablecompact disc read-only memory (CD-ROM), a digital versatile disc (DVD),an optical storage device, a magnetic storage device, or any suitablecombination of the foregoing. In the context of this document, acomputer-readable storage medium may be any tangible medium that cancontain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer-readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber, cable, RF, etc., or any suitable combination ofthe foregoing. Computer program code for carrying out operations foraspects of the present arrangements may be written in any combination ofone or more programming languages, including an object orientedprogramming language such as Java™, Smalltalk, C++ or the like andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer, or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider).

The terms “a” and “an,” as used herein, are defined as one or more thanone. The term “plurality,” as used herein, is defined as two or morethan two. The term “another,” as used herein, is defined as at least asecond or more. The terms “including” and/or “having,” as used herein,are defined as comprising (i.e. open language).

The phrase “at least one of . . . and . . . ” as used herein refers toand encompasses any and all possible combinations of one or more of theassociated listed items. As an example, the phrase “at least one of A, Band C” includes A only, B only, C only, or any combination thereof (e.g.AB, AC, BC or ABC). As used herein, a determination that is “based on atleast one of a determined availability or unavailability of passing theat least one forward vehicle and a determined sufficiency orinsufficiency of distance between the at least one forward vehicle andthe exit event” means that the determination can be made based on any ofthe following: (a) a determined availability or unavailability ofpassing the at least one forward vehicle, (b) a determined sufficiencyor insufficiency of distance between the at least one forward vehicleand the exit event, or (c) both a determined availability orunavailability of passing the at least one forward vehicle and adetermined sufficiency or insufficiency of distance between the at leastone forward vehicle and the exit event (e.g. availability andsufficiency, availability and insufficiency, unavailability andsufficiency, or unavailability and insufficiency).

Aspects herein can be embodied in other forms without departing from thespirit or essential attributes thereof. Accordingly, reference should bemade to the following claims, rather than to the foregoingspecification, as indicating the scope of the invention.

What is claimed is:
 1. A method of determining a driving action for anautonomous vehicle, comprising: identifying an exit event along acurrent road of a travel route of the autonomous vehicle; detecting atleast one forward vehicle between the autonomous vehicle and the exitevent; determining, using a processor, a driving action to take relativeto the at least one forward vehicle based on at least one of adetermined availability or unavailability of passing the at least oneforward vehicle and a determined sufficiency or insufficiency ofdistance between the at least one forward vehicle and the exit event;and causing the autonomous vehicle to implement the determined drivingaction.
 2. The method of claim 1, wherein, responsive to the determinedavailability of passing the at least one forward vehicle and thedetermined sufficiency of distance between the at least one forwardvehicle and the exit event, determining the driving action to be passingthe at least one forward vehicle.
 3. The method of claim 1, wherein,responsive to the determined unavailability of passing the at least oneforward vehicle, determining the driving action to be remaining behindthe at least one forward vehicle.
 4. The method of claim 1, wherein,responsive to the determined availability of passing the at least oneforward vehicle and the determined insufficiency of distance between theat least one forward vehicle and the exit event, prompting an occupantof the autonomous vehicle to select a driving action.
 5. The method ofclaim 4, wherein, responsive to receiving a selected driving action fromthe occupant of the autonomous vehicle, determining the driving actionto be the selected driving action.
 6. The method of claim 4, wherein, ifa driving action is not selected within a predetermined period of time,determining the driving action to be remaining behind the at least oneforward vehicle.
 7. A system for an autonomous vehicle comprising: asensor system configured to detect at least one forward vehicle betweenan autonomous vehicle and an exit event along a current road of a travelroute of the autonomous vehicle; a processor operatively connected tothe sensor system, the processor being programmed to initiate executableoperations comprising: determining a driving action to take relative tothe at least one forward vehicle based on at least one of a determinedavailability or unavailability of passing the at least one forwardvehicle and a determined sufficiency or insufficiency of distancebetween the at least one forward vehicle and the exit event; and causingthe autonomous vehicle to implement the determined driving action. 8.The system of claim 7, wherein, responsive to the determinedavailability of passing the at least one forward vehicle and thedetermined sufficiency of the distance between the at least one forwardvehicle and the exit event, determining the driving action to be passingthe at least one forward vehicle.
 9. The system of claim 7, wherein,responsive to the determined unavailability of passing the at least oneforward vehicle, determining the driving action to be remaining behindthe at least one forward vehicle.
 10. The system of claim 7, wherein,responsive to the determined availability of passing the at least oneforward vehicle and the determined insufficiency of distance between theat least one forward vehicle and the exit event, prompting an occupantof the autonomous vehicle to select a driving action.
 11. The system ofclaim 10, wherein, responsive to receiving a selected driving actionfrom the occupant of the autonomous vehicle, determining the drivingaction to be the selected driving action.
 12. The system of claim 10,wherein, if a driving action is not selected within a predeterminedperiod of time, determining the driving action to be remaining behindthe at least one forward vehicle.
 13. The system of claim 7, wherein thesensor system includes: one or more first sensors configured to detectobjects surrounding the autonomous vehicle; and one or more secondsensors configured to detect the distance between the at least oneforward vehicle and the exit event.
 14. A computer program product fordetermining a driving action for an autonomous vehicle approaching anexit event, the computer program product comprising a computer readablestorage medium having program code embodied therein, the program codeexecutable by a processor to perform a method comprising: identifying anexit event along a current road of a travel route of the autonomousvehicle; detecting at least one forward vehicle between the autonomousvehicle and the exit event; determining a driving action to takerelative to the at least one forward vehicle based on at least one of adetermined availability or unavailability of passing the at least oneforward vehicle and a determined sufficiency or insufficiency ofdistance between the at least one forward vehicle and the exit event;and causing the autonomous vehicle to implement the determined drivingaction.
 15. The computer program product of claim 14, wherein,responsive to the determined availability of passing the at least oneforward vehicle and the determined sufficiency of distance between theat least one forward vehicle and the exit event, determining the drivingaction to be passing the at least one forward vehicle.
 16. The computerprogram product of claim 14, wherein, responsive to the determinedunavailability of passing the at least one forward vehicle, determiningthe driving action to be remaining behind the at least one forwardvehicle.
 17. The computer program product of claim 14, wherein,responsive to the determined unavailability of passing the at least oneforward vehicle and the determined insufficiency of distance between theat least one forward vehicle and the exit event, prompting an occupantof the autonomous vehicle to select a driving action.
 18. The computerprogram product of claim 17, wherein, responsive to receiving a selecteddriving action from the occupant of the autonomous vehicle, determiningthe driving action to be the selected driving action.
 19. The computerprogram product of claim 17, wherein, if a driving action is notselected within a predetermined period of time, determining the drivingaction to be remaining behind the at least one forward vehicle.